/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package bd;

import java.util.LinkedList;

/**
 *
 * @author T
 */
public class granja {
    private item[] seccion_granja;
    private double dinero;
    private int nocuenta;
    private String pais;
    private int num_pais;
    private LinkedList<item> inventario = new LinkedList<item>();
    public int[] almacenados; //arreglo para guardar en la posicion [tipo_item] la cantidad q tiene almacenados
    
    public granja(String p_pais){
        dinero = 500;
        pais= p_pais;
        nocuenta=-1;
        num_pais=-1;
        seccion_granja = new item[25];
        almacenados = new int[10];
    }
    
    public boolean descontar_dinero(double costo){
        if(costo>dinero){
            System.out.println("No se tiene suficiente dinero!!");
            return false;
        }
        dinero = dinero-costo;
        return true;
    }
    
    public item cosecharItem(int pos_item){ //elimina item de la granja y lo agrega a la lista de almacenados
        if(seccion_granja[pos_item]!= null){
            item i = seccion_granja[pos_item];
            seccion_granja[pos_item]= null;
            System.out.println("Item eleminado");
            this.incrementarAlmacenado(i.getTipoProducto(),1);//se agrega un item del tipo q se tenia almacenado
            return i;
            
        }else{
            System.out.println("Posicion no tiene item!!");
        }
        return null; 
    }
    
    public boolean sacarAlmacenado(int tipo, int cantidad){ //cuando se vende, se saca de lo cosechado
        if(almacenados[tipo]>= cantidad){
            almacenados[tipo]-= cantidad;
            return true;
        }else return false;
    }
    
    public boolean incrementarAlmacenado(int tipo, int cantidad){ //cuando se compra, se agrega a los almacenados (almacenados)
        almacenados[tipo]+= cantidad;
        return true;
    }
    
    public boolean agregarProducto(item i){
        return inventario.add(i);         
    }
    
    public int cantidadProductos(){
        return inventario.size();
    }
    
    public void depositar_dinero(double deposito){
        dinero = dinero+deposito;
    }
    
    public double getDinero(){
        return dinero;
    }
    
    public void setNoCuenta(int no){
        nocuenta=no;
    }
    
    public int getNoCuenta(){
        return nocuenta;
    }
    
    public void setPais(String p){
        pais=p;
    }
    
    public String getPais(){
        return pais;
    }
    
    public void setNumPais(int np){
        num_pais=np;
    }
    
    public int getNumPais(){
        return num_pais;
    }
    
    public item getItem(int pos_item){
        return seccion_granja[pos_item];
    }
    
    public boolean setItem(item i,int pos_item){
        if(seccion_granja[pos_item]== null){
            seccion_granja[pos_item]= i;
            System.out.println("Item colocado");
            return true;
        }else{
            System.out.println("Posicion ya ocupada!!"+ seccion_granja[pos_item]);
        }
        return false;        
    }
    
    public item deleteItem(int pos_item){
        if(seccion_granja[pos_item]!= null){
            item i = seccion_granja[pos_item];
            seccion_granja[pos_item]= null;
            System.out.println("Item eleminado");
            return i;
        }else{
            System.out.println("Posicion no tiene item!!");
        }
        return null;        
    }
    
    public boolean Libre(int pos_item)
    {
        boolean retorno=false;
        if(seccion_granja[pos_item]==null)
        {
            retorno=true;
        }
        return retorno;
    }
    
    public int getCantidadAlmacenado(int tipo){
        return this.almacenados[tipo];
    }
}
